package cn.kuporo.seckill.goods.domain.service;

import cn.kuporo.seckill.goods.domain.model.SeckillGoods;

import java.util.List;

/**
 * @author: kuporo
 * @since: 2025/7/9
 * @description: 商品领域层接口
 */
public interface SeckillGoodsDomainService {
    /**
     * 保存商品信息
     */
    void saveSeckillGoods(SeckillGoods seckillGoods);

    /**
     * 根据id获取商品详细信息
     */
    SeckillGoods getSeckillGoodsId(Long id);

    /**
     * 根据活动id获取商品列表
     */
    List<SeckillGoods> getSeckillGoodsByActivityId(Long activityId);

    /**
     * 修改商品状态
     * @param id 商品id
     * @param status 商品状态
     */
    void updateStatus(Long id, Integer status);

    /**
     * 扣减库存
     */
    boolean updateAvailableStock(Integer count, Long id);


    /**
     * 获取当前可用库存
     */
    Integer getAvailableStockById(Long id);

    boolean updateDbAvailableStock(Integer count, Long id);
}
